5.5 `claude -c` - 继续最近的对话

3 分钟阅读

claude -c 命令允许您继续最近的对话会话。这在您意外关闭了 REPL 或想要继续之前的工作时非常有用。

命令语法#

bash
claude -c [选项]

功能描述#

-c--continue)标志会加载当前目录中最近的对话会话,并启动 REPL。这允许您:

  • 恢复意外中断的对话
  • 继续之前的工作
  • 保持对话上下文
  • 避免重复之前的查询

使用示例#

基本用法#

bash
claude -c

加载最近的对话会话并启动 REPL。

结合初始查询#

bash
claude -c "继续优化这个函数"

加载最近的对话,并立即继续优化函数的任务。

指定模型#

bash
claude -c --model claude-4-opus

使用指定的模型继续最近的对话。

添加额外的工作目录#

bash
claude -c --add-dir ../tests

加载最近的对话,并添加额外的工作目录。

会话保存机制#

Claude Code 会自动保存对话会话,以便后续恢复:

保存位置#

会话保存在以下位置:

  • 本地会话:保存在项目目录的 .claude/sessions/ 子目录
  • 用户会话:保存在用户主目录的 .claude/sessions/ 子目录

会话命名#

会话通常以以下方式命名:

  • 时间戳:包含会话创建或最后修改的时间
  • 会话 ID:唯一的标识符,用于精确恢复
  • 摘要:对话的简要描述(如果可用)

会话内容#

保存的会话包含:

  • 对话历史
  • 上下文信息
  • 工具调用记录
  • 配置状态
  • 文件访问记录

使用场景#

1. 意外中断#

bash
# 意外关闭了 REPL claude -c

恢复意外中断的对话。

2. 跨天工作#

bash
# 第二天继续前一天的工作 claude -c "继续昨天的任务"

继续前一天未完成的工作。

3. 切换任务#

bash
# 完成一个任务后,开始另一个任务 claude -c "开始新任务"

切换到不同的任务,同时保持之前的上下文。

4. 多项目工作#

bash
# 在项目 A 中工作 cd /path/to/project-a claude -c # 切换到项目 B cd /path/to/project-b claude -c

在不同项目之间切换,每个项目保持独立的对话上下文。

会话管理#

查看可用会话#

虽然 claude -c 默认加载最近的会话,但您可以通过以下方式查看所有可用会话:

  1. 查看会话目录
bash
ls -la .claude/sessions/
bash
claude --resume

这会显示可用会话列表,让您选择要恢复的会话。

清理旧会话#

定期清理旧会话可以释放磁盘空间:

bash
# 删除超过 7 天的会话 find .claude/sessions/ -mtime +7 -delete

注意事项#

与其他恢复命令的对比#

命令恢复方式选择性适用场景
claude -c最近会话快速继续最近的工作
claude --resume交互选择选择特定会话恢复
claude -r "id"指定 ID精确恢复特定会话

最佳实践#

1. 结合版本控制#

bash
# 在Git提交前保存会话 git add . git commit -m "重构用户认证模块"

将代码变更与会话状态同步记录。

2. 清理策略#

bash
# 删除超过 7 天的会话 find .claude/sessions/ -mtime +7 -delete

定期清理旧会话,避免磁盘空间浪费。

常见问题#

Q: 如何查看会话的详细信息?#

A: 可以查看会话目录中的文件,或使用 claude --resume 交互式选择会话。

Q: 恢复的会话与原会话完全一样吗?#

A: 基本一样,但某些临时状态可能无法完全恢复。

Q: 可以恢复其他目录的会话吗?#

A: 不可以,-c 只会加载当前目录中的会话。要恢复其他目录的会话,需要切换到该目录或使用 -r 命令。

Q: 会话会占用多少磁盘空间?#

A: 这取决于对话的长度和复杂度,通常在几 KB 到几 MB 之间。

相关命令#

  • claude:启动新的交互式 REPL
  • claude --resume:交互式选择并恢复会话
  • claude -r "id":按 ID 恢复会话
  • /clear:清除对话历史
  • /exit:退出 REPL

实际应用示例#

工作流恢复#

sh
#!/bin/bash # 检查是否有最近的会话 if [ -d .claude/sessions/ ]; then # 恢复最近的会话 claude -c "继续之前的工作" else # 启动新的会话 claude "开始新任务" fi

多项目管理#

bash
#!/bin/bash # 项目列表 projects=("project-a" "project-b" "project-c") # 选择项目 echo "选择项目:" select project in "${projects[@]}"; do cd "/path/to/$project" claude -c "在 $project 中工作" break done

通过 claude -c,您可以无缝地继续之前的工作,提高工作效率,避免重复之前的查询和上下文设置。

标记本节教程为已读

记录您的学习进度,方便后续查看。